import { PopUIMgr } from './PopUIMgr';
//------------------------------------------------------------
// * Author         : Ekko
// * Description    : UI基类
//------------------------------------------------------------

const {ccclass, property} = cc._decorator;
const popOverlayBg: string = ""; // 弹窗背景图名字

export class PopUIBase extends cc.Component{
    // 关闭按钮
    @property(cc.Button)
    btnClose: cc.Button = null;

    // 界面名字
    private _uiName: string;
    private _isShow: boolean;

    set uiName(value: string){
        this._uiName = value;
    }

    /**
     * 弹出界面时调用，在onLoad后调用，可以用于初始化工作
     * @param params 参数
     */
    onShow(...params: any[]): void{

    }

    /**
     * 关闭界面时调用，可以用于做清理工作
     */
    onHide(): void{

    }

    hide(): void{
        PopUIMgr.getInst().hide(this._uiName);
    }

    __show(...params: any[]): void{
        cc.log("show ", this._uiName, " : ", ...params);
        
        if (this.btnClose) {
            this.btnClose.node.on(cc.Node.EventType.TOUCH_END, this.onCloseBtnTouch, this);
        }
        this._isShow = true;
        this.onShow(...params);
    }

    __hide(): void{
        cc.log("hide ", this._uiName);
        if (this.btnClose) {
            this.btnClose.node.off(cc.Node.EventType.TOUCH_END, this.onCloseBtnTouch, this);
        }
        this._isShow = false;
        this.onHide();
    }

    onCloseBtnTouch(): void{
        this.hide();
        
    }
}